package com.gking.centerSystem.AOP;


import com.gking.centerSystem.entity.ConfigSwitch;
import com.gking.centerSystem.service.ConfigSwitch.ConfigSwitchService;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;


@Primary // 确保这个切面优先被使用
@Component
public class ConfigFunctionSwitchAspectService extends ConfigFunctionSwitchAspect {

    @Resource
    private ConfigSwitchService configSwitchService;

    /**
     * 获取系统功能开关状态，子类继承后需要重写该方法
     *
     * @param code 系统功能开关 唯一编码
     * @return 返回一个Map {"status":true/false, "disableMsg":"功能关闭提示信息"}
     */
    @Override
    public Map getConfigFunctionSwitchStatus(String code) {

        // 根据code获取系统功能开关
        ConfigSwitch configSwitch = configSwitchService.getByCode(code);

        // 创建一个Map用于存储返回结果
        Map<String, Object> map = new HashMap<>();

        // 如果系统功能开关不存在
        if (configSwitch == null) {
            // 将状态设置为false
            map.put("status", false);
            // 设置关闭提示信息为功能code不存在
            map.put("disableMsg", "功能code不存在");

            // 返回Map
            return map;
        } else {
            // 如果系统功能开关状态为0，将状态设置为true
            if (configSwitch.getStatus() == 0) map.put("status", true);
            // 如果系统功能开关状态为1，将状态设置为false
            if (configSwitch.getStatus() == 1) map.put("status", false);
            // 设置关闭提示信息为系统功能开关的关闭提示信息
            map.put("disableMsg", configSwitch.getDisableMsg());

            // 返回Map
            return map;
        }
    }


}
